import request from '@/config/axios'

// ERP基础资料-开单参数系统参数 VO
export interface BaseOrderConfigVO {
  id: string // id
  autoApproveOrder: boolean // 订单保存后自动审核
  allowEditApprovedOrder: boolean // 订单在审核状态下可直接修改
  dataBackupPath: string // 系统数据备份路径
  defaultScheduleWarningDays: number // 排产提醒默认到交期天数
  materialCalculateRule: string // 算料规则
  useDieCutSpecForMaterialCalc: boolean // 是否按模切规格计算材料
  supplierQuotePolicy: string // 供应商报价策略
  minBoardWidth: number // 净板约宽最小值
  directSupplierRawMaterial: boolean // 原料采购是否按供应商
  directSupplierAuxiliaryMaterial: boolean // 辅料采购是否按供应商
  defaultPaperboardDeliveryDays: number // 纸板采购默认交货天数
  preventZeroPriceOrder: boolean // 采购单价为0不允许保存
  customerQuotePolicy: string // 客户报价策略
  defaultDeliveryDaysBox: number // 纸箱订单默认交货天数
  defaultDeliveryDaysColorBox: number // 彩印订单默认交货天数
  autoApproveSalesOrder: boolean // 销售订单保存后自动审核
  allowNonStockDelivery: boolean // 不入库可以开送货单
  enableSchedulingDelivery: boolean // 送货需按排程发货
  carOvercapacityWarning: boolean // 送货单车量超容量提醒
  systemMonthEnd: number // 系统月结日
  rawMaterialInLimit: string // 原料入库限制
  productInLimit: string // 成品入库限制
  productDeliveryHint: string // 成品送货提示
  defaultProductUnit: string // 产品默认单位
  productInLimit2: string // 成品入库限制2
  deliveryAutoAudit: boolean // 送货单保存后自动审核
  productManagementMode: string // 成品管理模式
  productDeliveryMode: string // 成品送货方式
  deliveryAutoPickOrProduce: boolean // 送货单自动领用库存或者生成成品
  auxiliaryMaterialInLimit: string // 辅料入库限制
  profitAnalysisBase: string // 毛利分析成本
  enableFinancialClosing: boolean // 启用财务结账
  financialClosingDate: Date // 财务结账日期
  outsourcingPricingUnit: string // 外协核价规格单位
  outsourcingPurchaseQtyUseLastProcess: boolean // 外协采购数量是否取上一道工序的完工数
  autoPrintProductLabel: boolean // 现场自动打印成品标签
  preProductionMaintenance: boolean // 生产前是否维护机台
  touchscreenAutoPick: boolean // 触摸屏自动领料
  touchscreenAutoPrintCount: boolean // 触摸屏打印自动计算张数
  touchscreenOutsourceSkipStorage: boolean // 触摸屏外协不入库可以看下一道工序
  deliveryOrderProductType: string // 送货单产品类型
}

// ERP基础资料-开单参数系统参数 API
export const BaseOrderConfigApi = {
  // 查询ERP基础资料-开单参数系统参数分页
  getBaseOrderConfigPage: async (params: any) => {
    return await request.get({ url: `/erp/base-order-config/page`, params })
  },

  // 查询ERP基础资料-开单参数系统参数详情
  getBaseOrderConfig: async () => {
    return await request.get({ url: `/erp/base-order-config/get`})
  },

  // 新增ERP基础资料-开单参数系统参数
  createBaseOrderConfig: async (data: BaseOrderConfigVO) => {
    return await request.post({ url: `/erp/base-order-config/create`, data })
  },

  // 修改ERP基础资料-开单参数系统参数
  updateBaseOrderConfig: async (data: BaseOrderConfigVO) => {
    return await request.put({ url: `/erp/base-order-config/update`, data })
  },

  // 删除ERP基础资料-开单参数系统参数
  deleteBaseOrderConfig: async (id: number) => {
    return await request.delete({ url: `/erp/base-order-config/delete?id=` + id })
  },

  // 导出ERP基础资料-开单参数系统参数 Excel
  exportBaseOrderConfig: async (params) => {
    return await request.download({ url: `/erp/base-order-config/export-excel`, params })
  }
}